/*
click.dm
All of the clicking overrides can be found here.
TODO:
	Add DblClick overrides (which is another set of 12 :|)
*/

atom/proc
	LeftClick(caller, location, control, params)
	RightClick(caller, location, control, params)
	MiddleClick(caller, location, control, params)

	LeftAltClick(caller, location, control, params)
	RightAltClick(caller, location, control, params)
	MiddleAltClick(caller, location, control, params)

	LeftShiftClick(caller, location, control, params)
	RightShiftClick(caller, location, control, params)
	MiddleShiftClick(caller, location, control, params)

	LeftCtrlClick(caller, location, control, params)
	RightCtrlClick(caller, location, control, params)
	MiddleCtrlClick(caller, location, control, params)

client/Click(atom/object, location, control, params)
		var/list/p = params2list(params)
		if     (("shift" in p) && ("middle" in p))object.MiddleShiftClick(mob, location, control, params)
		else if(("shift" in p) && ("right" in p)) object.RightShiftClick(mob, location, control, params)
		else if(("shift" in p) && ("left" in p))  object.LeftShiftClick(mob, location, control, params)

		else if(("ctrl" in p) && ("middle" in p)) object.MiddleCtrlClick(mob, location, control, params)
		else if(("ctrl" in p) && ("right" in p))  object.RightCtrlClick(mob, location, control, params)
		else if(("ctrl" in p) && ("left" in p))   object.LeftCtrlClick(mob, location, control, params)

		else if(("alt" in p) && ("middle" in p)) object.MiddleAltClick(mob, location, control, params)
		else if(("alt" in p) && ("right" in p))  object.RightAltClick(mob, location, control, params)
		else if(("alt" in p) && ("left" in p))   object.LeftAltClick(mob, location, control, params)

		else if("middle" in p) object.MiddleClick(mob, location, control, params)
		else if("right" in p)  object.RightClick(mob, location, control, params)
		else if("left" in p)   object.LeftClick(mob, location, control, params)